"""
多态的实际应用 - 飞机大战
1. 游戏包含两方： 玩家(英雄级)   敌人(大敌机，小敌机，小蜜蜂)
2. 敌人出现是随机出现的(出现大敌机，小敌机，小蜜蜂不是人为控制的，而是随机出现的)
3. 击毙敌人获取的奖励也不一样，小敌机奖励1分，大敌机奖励2分，小蜜蜂获取生命值

根据上面的分析，大敌机，小敌机，小蜜蜂都应该放在敌人列表中， 随机出现。 所有的敌人都有 死亡的方法
不同的敌人面对死亡 玩家获取到的奖励是不一样的。调用同一个方法，表现出来的奖励是不一样的，这就是多态
"""
import time


# 敌人类
class Enemy:

    def dead(self):
        pass


# 小蜜蜂
class Bee(Enemy):

    def dead(self):
        print('我是小蜜蜂玩家生命值+1')

    def __repr__(self):
        return 'Bee'

# 小敌机
class AirPlane(Enemy):

    def dead(self):
        print('我是小飞机，玩家分数+1')

    def __repr__(self):
        return 'AirPlane'

# 大敌机
class BigPlane(Enemy):

    def dead(self):
        print('我是大飞机，玩家分数+3')

    def __repr__(self):
        return 'BigPlane'

import random

if __name__ == '__main__':
    # 将小飞机，大飞机，小蜜蜂放到一个敌人列表中
    enemy_list = list() # 敌人列表，用于存放敌人
    while(True):
        time.sleep(1)
        num = random.randint(1,10)
        if num <= 4: # 1 2 3 4
            a = AirPlane()
            enemy_list.append(a)
        elif num <=8: # 5 6 7 8
            b = BigPlane()
            enemy_list.append(b)
        else: #9 10
            bee = Bee()
            enemy_list.append(bee)

        for e in enemy_list:
           e.dead()
